package test1230pm;

// 学校类
class School {
    private String name;

    // 构造方法
    public School(String name) {
        this.name = name;
    }

    // Getter方法
    public String getName() {
        return name;
    }

    // 重写toString方法以便打印学校信息
    @Override
    public String toString() {
        return "School{" +
                "name='" + name + '\'' +
                '}';
    }
}

// 学生类
class Student {
    private String name;
    private School school; // 学生所在的学校

    // 构造方法
    public Student(String name, School school) {
        this.name = name;
        this.school = school;
    }

    // Getter方法
    public String getName() {
        return name;
    }

    public School getSchool() {
        return school;
    }

    // 重写toString方法以便打印学生及其学校信息
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", school=" + school +
                '}';
    }
}


public class Test04 {
    public static void main(String[] args) {
        // (4)设计一个学生类和学校类
        // 场景：学生王五在大连科技上学、学生赵六在大连大学上学
        // 要求：根据需求创建学生和学校对象、并能表示出学生和学校之间的关联关系、打印学生以及所在学校的信息

        // 创建学校对象
        School dalianTech = new School("大连科技");
        School dalianUni = new School("大连大学");

        // 创建学生对象并设置与学校之间的关联关系
        Student wangwu = new Student("王五", dalianTech);
        Student zhaoliu = new Student("赵六", dalianUni);

        // 打印学生以及所在学校的信息
        System.out.println(wangwu);
        System.out.println(zhaoliu);

        // 或者，我们可以编写一个方法来打印学生及其学校信息
        printStudentInfo(wangwu);
        printStudentInfo(zhaoliu);
    }

    // 打印学生及其学校信息的方法
    private static void printStudentInfo(Student student) {
        System.out.println("Student Name: " + student.getName());
        System.out.println("School Name: " + student.getSchool().getName());
        System.out.println("-----------------------");
    }
}